package com.houger.ddd.seckill.facade.dto;

import com.alibaba.fastjson.JSONObject;
import com.houger.ddd.common.base.BaseActivityDto;
import com.houger.ddd.common.base.BaseExtDataDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serial;

/**
 * 奖池配置表
 *
 * @author Administrator
 * @version $$ Revision:1.0.0, $$ Date: 2022-02-21 18:55:33 $$
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class ActivityRewardItemDto extends BaseActivityDto {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description ="活动模板ID")
    private Long templateId;

    @Schema(description ="活动模板代码")
    private String templateCode;

    @Schema(description ="奖励人类型 0-所有参与人 1-奖励发起人 2-奖励受邀人")
    private Integer awardeeType;

    @Schema(description ="奖品类型 0-无 1-优惠券 2-积分 3-商品 4-活动资格 99-奖品包")
    private Integer itemType;

    @Schema(description ="奖品代码(券码, SKU等)")
    private String itemCode;

    @Schema(description ="奖品名称")
    private String itemName;

    @Schema(description ="奖品图片")
    private String itemIcon;

    @Schema(description ="奖品数量")
    private Integer rewardCount;

    @Schema(description ="奖品排序")
    private Integer itemOrder;

    @Schema(description ="奖品单日最大释放限制")
    private Integer dailyReleaseLimit;

    @Schema(description ="奖品维度-用户可最大获得奖励次数 -1不限制")
    private Integer playerRewardMax;

    @Schema(description ="奖品维度-用户每日可最大获得奖励次数 -1不限制")
    private Integer playerDailyRewardMax;

    @Schema(description ="库存限制类型 0-无限制 1-有限制")
    private Integer invLimitType;

    @Schema(description ="奖品总库存")
    private Integer invTotal;

    @Schema(description ="已发放库存")
    private Integer invUsed;

    @Schema(description ="是否删除；0：未删除；1：已删除")
    private Integer isDelete;

    @Schema(description ="扩展参数")
    private JSONObject extDataJson;

    @Schema(description ="扩展参数对象")
    private BaseExtDataDto extDataObj;

}
